#include<bits/stdc++.h>
using namespace std;
#define print(a) for(auto x:a)cout<<x<<" "
#define debug(x) cout<<#x<<" "<<x<<endl
#define all(a) (a).begin(),(a).end()
#define sz(a) (int)(a.size())
#define int long long int
#define endl '\n'
#define ar array
const int M = 1e9 + 7;
const int N = 2e3+10;
void solve(){
string s;cin>>s;
set<char>st;
vector<int>cnt(26,0);
for(auto c:s)st.insert(c),cnt[c-'a']++;
int n=sz(s);
bool ok=sz(st)==1;
for(int i=0;i<26;i++){
ok|=(cnt[i]==(n-1));
}
if(ok){
cout<<"Impossible\n";return;
}
if(n&1){
cout<<2<<endl;return;
}
for(int i=0;i+1<n;i++){
string t=s.substr(i+1,n-i-1)+s.substr(0,i+1);
string tt=t;
reverse(all(t));
if(t==tt && s!=t){
cout<<1<<endl;return;
}
}
cout<<2<<endl;
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int t=1; //cin>>t;
while(t--)solve();
return 0;}
1279A - New Year Garland | 1279B - Verse For Santa |
202A - LLPS | 978A - Remove Duplicates |
1304A - Two Rabbits | 225A - Dice Tower |
1660D - Maximum Product Strikes Back | 1513A - Array and Peaks |
1251B - Binary Palindromes | 768B - Code For 1 |
363B - Fence | 991B - Getting an A |
246A - Buggy Sorting | 884A - Book Reading |
1180A - Alex and a Rhombus | 445A - DZY Loves Chessboard |
1372A - Omkar and Completion | 159D - Palindrome pairs |
981B - Businessmen Problems | 1668A - Direction Change |
1667B - Optimal Partition | 1668B - Social Distance |
88B - Keyboard | 580B - Kefa and Company |
960A - Check the string | 1220A - Cards |
897A - Scarborough Fair | 1433B - Yet Another Bookshelf |
1283B - Candies Division | 1451B - Non-Substring Subsequence |